<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Accessing LLDB Sources</title>
</head>

<body>
	<div class="www_title">
		The <strong>LLDB</strong> Debugger
	</div>
	
<div id="container">
	<div id="content">
		
	<!--#include virtual="sidebar.incl"-->

		<div id="middle">
			<div class="post">
				<h1 class ="postheader">Checking out LLDB sources</h1>
        <div class="postcontent">
          <p>Refer to the <a href="http://llvm.org/docs/GettingStarted.html#getting-started-with-llvm">LLVM Getting Started Guide</a>
             for general instructions on how to check out source.  Note that LLDB depends on having a working checkout of LLVM
             and Clang, so the first step is to download LLVM and Clang sources as described at the above URL.  Then you can
             additionally download the LLDB sources from the following repository URLs.</p>
          <p><b>SVN Repository</b>: http://llvm.org/svn/llvm-project/lldb/trunk </p>
          <p><b>Git Clone</b>: http://llvm.org/git/lldb.git </p>
          <p>
            For non-Mac platforms, and for MacOSX building with CMake (not Xcode), you should check out your sources to adhere to
            the following directory structure:
            <pre><tt>  
                  llvm
                  |
                  `-- tools
                      |
                      +-- clang
                      |
                      `-- lldb
                </tt></pre>
          </p>
          <p>
            For MacOSX building from Xcode, simply checkout LLDB and then build from Xcode.  The Xcode project will
            automatically detect that it is a fresh checkout, and checkout LLVM and clang automatically.  Unlike other
            platforms / build systems, it will use the following directory structure.
            <pre><tt>  
                  lldb
                  |
                  `-- llvm
                      |
                      +-- tools
                          |
                          `-- clang
                </tt>
            </pre>
            So updating your checkout will consist of updating lldb, llvm, and clang in these locations.
          </p>
          <p>
            Refer to the <a href="build.html">Build Instructions</a> for more detailed instructions on how to build for a particular
            platform / build system combination.
          </p>
        </div>
			</div>
			<div class="post">
				<h1 class ="postheader">Contributing to LLDB</h1>
				<div class="postcontent">
          <p>
            Please refer to the <a href="http://llvm.org/docs/DeveloperPolicy.html">LLVM Developer Policy</a>
            for information about authoring and uploading a patch.  LLDB differs from the LLVM Developer Policy in
            the following respects.
            <ul>
              <li>
                Test infrastructure.  It is still important to submit tests with your patches, but LLDB uses a different
                system for tests.  Refer to the lldb/test folder on disk for examples of how to write tests.
              </li>
            </ul>
            For anything not explicitly listed here, assume that LLDB follows the LLVM policy.
          </p>
        </div>
				<div class="postfooter"></div>
			</div>
		</div>
	</div>
</div>
</body>
</html>
